Version History

Changelog

Complete history of features, improvements, and fixes for the SuiteQL Query Tool

Table of Contents

Version 2026.1 Current

A major release featuring complete UI modernization, AI-powered features, and extensive new functionality.

UI Modernization

  • Complete UI modernization with SQL Studio-inspired design
  • Upgraded to Bootstrap 5.3 and removed jQuery dependency
  • Added CodeMirror for SQL syntax highlighting
  • Implemented dark mode support with theme persistence
  • Enhanced results table with sticky headers and better styling
  • Added toast notifications replacing alert dialogs
  • Improved responsive design

Editor Enhancements

  • Modernized JavaScript (const/let, arrow functions, ES6+ features)
  • Added table/column autocomplete (Ctrl+Space)
  • Added visual undo/redo history panel
  • Added keyboard shortcuts modal (press ? to view)
  • Added editor font size selector (Extra Small to Extra Large: 10-16px)
  • Improved SQL formatter to match preferred coding style:
    • Tab indentation
    • Keywords uppercase
    • Each SELECT column on its own line
    • JOIN conditions in parentheses with spaces
    • AND/OR at start of lines
    • Preserves comments

Query Features

  • Added query history with localStorage persistence
  • Added query sharing via URL
  • Added auto-save draft with localStorage persistence
  • Added query parameters ({{variable}} syntax with prompt)
  • Added SQL file import with drag & drop support
  • Added SQL file download/export (.sql)
  • Added "Force cache miss" option for benchmarking query performance

Results Display

  • Added view mode toggle (Table, DataTable, JSON)
  • Added collapsible sidebar for query history
  • Added Focus Mode to hide NetSuite chrome
  • Added column statistics (SUM, AVG, MIN, MAX) for numeric columns
  • Added row details popup (click any row to view all fields)
  • Added execution time tracking
  • Added column reordering via drag & drop
  • Added column pinning (freeze first 1-3 columns while scrolling)
  • Added results maximized mode (Shift+R to hide editor)
  • Added native Excel (.xlsx) export via SheetJS

AI-Powered Features

  • AI-powered query generation with natural language input
    • Supports both Anthropic (Claude) and OpenAI (GPT) APIs
    • Conversational interface with persistent chat history
    • Auto-detects SQL in responses with one-click insert
    • Optional auto-execute for generated queries
    • Configurable API key storage (session-only or persistent)
  • AI-powered Tables Reference enhancements:
    • "Ask AI about this table" with preset questions
    • "Find the right table" natural language search
    • "Generate query from selection" with column checkboxes
  • AI-powered editor features:
    • "Explain Query" - breaks down complex queries into plain English
    • "Validate Query" - AI reviews query before execution
    • Query optimization suggestions for slow queries (>5s)
    • Natural language query bar above the editor

Toolbar Improvements

  • Shortened "Run Query" to "Run"
  • Grouped AI features into dropdown (AI Chat, Quick Ask Bar, Explain, Validate)
  • Grouped file operations into "More" dropdown (Query Library, Share, Import, Download)
  • Consolidated right-side icon buttons (removed dividers)
  • Added compact mode toggle (icons only) in Options panel
  • Added individual toolbar visibility toggles (Format, AI, More, Tables)
  • Reduced button sizes for a cleaner, more compact toolbar

Bug Fixes

  • Fixed Safari resizer bug (drag handle could not be released)
  • Added confirmation dialog before clearing results

2026.1 Beta 09 Beta

Clickable Record Links

  • ID columns now automatically link to NetSuite records
  • Click to open the record in a new tab
  • Supports: Customers, Vendors, Employees, Items, Transactions, Subsidiaries, Departments, Classes, Locations, Accounts, and more
  • Works in Table view, DataTable view, and Row Details modal
  • Toggle option "Link IDs to records" in Options panel (enabled by default)
  • Preference persists to localStorage
  • Hover effect: blue background with white text for visual feedback

Plugin Architecture

  • Plugins are self-contained files stored in NetSuite File Cabinet
  • New CONFIG.PLUGIN_FOLDER_ID setting to enable plugin loading
  • Plugin files named *.sqt-plugin.js or *.sqt-plugin.json
  • Automatic dependency resolution with topological sorting
  • Version compatibility checking (minAppVersion)
  • Plugins can disable built-in features via disables[] array

Server-Side Plugin Support

  • onBeforeQuery hook - modify queries before execution
  • onAfterQuery hook - process results after execution
  • onError hook - handle query errors
  • Custom server handlers accessible via fetch
  • Plugin settings persistence to File Cabinet

Client-Side Plugin Support

  • SQT.plugins namespace for plugin registration and management
  • onInit hook - called when app initialization completes
  • onBeforeQuery / onAfterQuery hooks
  • onResultsDisplay hook - customize result rendering
  • onBeforeExport / onAfterExport hooks - export lifecycle
  • onEditorChange hook - respond to editor changes
  • Plugin settings API with localStorage and server persistence

UI Injection Points (17 total)

  • Toolbar: toolbar-start, toolbar-end, more-dropdown, ai-dropdown
  • Header: header-right
  • Editor: before-editor, editor-toolbar, nl-bar
  • Results: results-header, results-footer (dynamic via hooks)
  • Sidebar: sidebar-section
  • Modals: export-menu, local-library-actions, modals
  • Other: options-panel, status-bar

Extended Public API for Plugins

  • SQT.plugins - plugin management namespace
  • SQT.getResults() - get current query results
  • SQT.getQuery() / SQT.setQuery() - read/write editor content
  • SQT.getEditor() - access CodeMirror instance
  • SQT.showModal() / SQT.hideModal() - modal control

Editor Enhancements

  • Added syntax highlighting for NetSuite BUILTIN functions (BUILTIN.DF, etc.)
  • Custom CodeMirror mode overlays SQL with BUILTIN pattern detection
  • Cyan/teal color styling for BUILTIN functions in both light and dark themes

Improved SQL Formatter

  • Added tooltip showing keyboard shortcut (Ctrl+Shift+F)
  • Better keyword detection that avoids matching within identifiers
  • Proper handling of SELECT columns, JOINs, WHERE conditions
  • Support for CASE/WHEN/THEN/ELSE/END formatting
  • UNION/INTERSECT/EXCEPT with visual separation
  • Preserves string literals and line comments
  • Whitespace normalization after clause keywords

AI Provider Enhancements

  • New "OpenAI-Compatible" provider option for custom API endpoints
  • Custom base URL field for OpenRouter, Azure OpenAI, local models, etc.
  • Custom model name input for specifying any model identifier
  • Enables use of any OpenAI-compatible API (OpenRouter, Together, Ollama, etc.)

Data Visualization / Charts

  • New "Chart" button in results toolbar to visualize query data
  • Chart types: Bar, Line, Pie, Doughnut, Polar Area
  • Manual configuration with label (X-axis) and value (Y-axis) column selection
  • AI-assisted chart generation from natural language descriptions
  • Theme-aware colors that adapt to light/dark mode
  • Export charts as PNG images
  • Multi-dataset support for comparison charts
  • Automatic numeric column detection for suggested value columns
  • Powered by Chart.js library

Schema Explorer Improvements

  • Collapsible Build Schema and Export Schema sections
  • Toggle buttons in card headers with state persistence
  • Collapsed state saved to localStorage
  • Fix for NetSuite Records Catalog API bug with malformed labels
  • Labels like "[Missing Label:...]" now display extracted class name
  • Warning indicator shown when label is derived from API metadata

Sample Plugin

  • Included query-logger.sqt-plugin.js demonstrating:
    • Server and client hooks
    • UI injection with status bar indicator
    • Settings with options panel toggle
  • Complete plugin development guide available

2026.1 Beta 08 Beta

Schema Explorer Exports

  • BigQuery DDL - Google BigQuery-compatible CREATE TABLE statements with proper type mapping
  • Snowflake DDL - Snowflake-compatible statements with INTEGER, FLOAT, BOOLEAN, TIMESTAMP_NTZ types
  • dbt Schema YAML - dbt sources configuration file with table/column descriptions and tests
  • Amazon Redshift DDL - Redshift-compatible statements with VARCHAR(MAX) for large text fields
  • Apache Avro Schema - JSON schema for Kafka/streaming pipelines with logical types for dates
  • Markdown Documentation - Comprehensive schema docs with table of contents and anchor links

Export UI Improvements

  • Added "Show All Formats" toggle to Schema Explorer export grid
  • Common formats shown by default (JSON, MySQL, PostgreSQL, BigQuery, Snowflake, Markdown, ERD)
  • Click to reveal advanced options (SQLite, SQL Server, Redshift, dbt, Avro, DBML, DOT)
  • Toggle state persists during session

Copy to Clipboard Enhancement

  • Copy now respects view mode:
    • JSON view - copies results as formatted JSON
    • Table/DataTable view - copies as CSV
  • Toast message indicates which format was copied
  • Added Copy button to results toolbar for quick access (next to view mode toggle)

2026.1 Beta 07 Beta

Generate Suitelet Feature

  • Creates standalone SuiteScript 2.1 Suitelet from current template/queries in Document Generator
  • New "Generate Suitelet" button in Document Generator modal footer
  • Options modal for configuration:
    • Script ID (optional, for JSDoc @NScriptId)
    • Commenting level: None, Minimal, or Verbose
    • Default output mode: Inline (display in browser) or Download
  • Multi-query support with named data sources
  • Automatic parameter detection from {{param}} syntax in queries
  • Generated script includes URL parameter extraction and validation
  • FreeMarker template embedded inline in generated script
  • Template validation required before generation
  • Code preview modal with CodeMirror syntax highlighting
  • Copy to clipboard and download as .js file options
  • Generated Suitelet includes CONFIG object for easy customization

Export to Google Sheets

  • New export option in the Export dropdown menu
  • Uses Google Service Account authentication (user pastes JSON key)
  • Settings modal for credential management with optional localStorage persistence
  • Two export modes:
    • "Create New Spreadsheet" (requires full Drive API permissions)
    • "Append to Existing" (works with spreadsheets shared with service account)
  • Progress bar with batched exports (500 rows per batch)
  • Automatic header row insertion for new spreadsheets
  • Token caching to minimize authentication overhead

Technical: Pure JavaScript RSA-SHA256 JWT Signing

  • Required because NetSuite N/crypto lacks RSA private key signing
  • ASN.1 DER parser for PKCS#8 private key extraction
  • SHA-256 hash implementation
  • PKCS#1 v1.5 signature padding
  • BigInt modular exponentiation for RSA operation
  • Custom Base64URL encoding to avoid NetSuite encoding issues with binary data

2026.1 Beta 06 Beta

AI Configuration

  • Added AI_ENABLED configuration option (default: true)
    • Master switch to enable/disable all AI-powered features
    • When disabled, hides all AI-related UI elements
    • Server-side validation rejects AI requests when disabled
    • All AI JavaScript functions safely handle disabled state
  • Added "AI Settings" option to AI dropdown menu for easier access

Additional AI Providers

  • Cohere - Command A, Command R+, and Command R models via v2 Chat API
  • xAI (Grok) - Grok 3, Grok 3 Fast, and Grok 2 models via OpenAI-compatible API
  • Google Gemini - Gemini 2.0 Flash, Gemini 1.5 Pro, and Gemini 1.5 Flash models
  • Mistral AI - Mistral Large, Mistral Small, and Codestral models

Schema Explorer

  • Builds complete NetSuite database schema client-side
  • Respects role-based data visibility (schema reflects what user can see)
  • Stores schema in IndexedDB for persistence
  • Export formats: JSON, MySQL DDL, PostgreSQL DDL, SQLite DDL, SQL Server DDL, DBML
  • DBML export compatible with dbdiagram.io for ERD generation
  • Accessible from main toolbar and Tables Reference header

ERD Generation

  • Interactive Mermaid.js-powered diagram viewer
  • Scope options: All related tables, Select specific tables, Connected subset
  • Display options: Show columns (PK/FK), Show cardinality labels
  • User-configurable layout direction (Top-Bottom, Left-Right, etc.)
  • User-configurable diagram style (Classic, Hand-drawn)
  • Zoom controls with mouse wheel support
  • Export to SVG, PNG, DOT (Graphviz), and copy Mermaid code
  • Link to Mermaid Live editor for further customization
  • Maximize button and collapsible sidebar for diagram viewing
  • Search filter for table selection list
  • Warning when selected tables have no relationships with auto-suggest

Schema-Based Autocomplete

  • Optional "Use full schema" toggle in Options (under autocomplete)
  • Leverages schema data from Schema Explorer (stored in IndexedDB)
  • Provides completions for ALL tables visible to user's role (500+)
  • Shows data types in completion hints (e.g., "trandate (DATE)")
  • Falls back to static table list when schema not available

Document Generator Enhancements

  • Enhanced CodeMirror editor with toolbar:
    • Undo/Redo buttons
    • Find and Replace functionality
    • Font size increase/decrease controls
    • Word wrap toggle
    • Code fold/unfold all
    • Go to line number
    • Active line highlighting and bracket matching
  • AI-powered template generation:
    • "AI Generate" button opens modal for natural language input
    • Describe desired document layout in plain English
    • AI generates complete FreeMarker/XML template
    • Context-aware: knows available data sources and column names
    • NetSuite-specific: trained on BFO PDF renderer limitations
  • AI template refinement mode:
    • When editor has existing code, modal switches to "Refine" mode
    • Describe changes to make to existing template
    • Options to replace or append generated code

API Debug Modal

  • Shows request URL, headers (with API key redacted), and request body
  • Shows response code and response body
  • Accessible via "Show Details" link when AI API errors occur
  • Available in AI Assistant, Query Explanation, and Query Validation

Additional Features

  • Graphviz DOT export for complete schema (all tables and relationships)
  • ERD_CONFIG object for centralized ERD configuration
  • Diagnostic logging for duplicate label detection during schema building
  • "Render HTML in results" option - when enabled, HTML renders instead of being escaped